/*
standardWorkSuperviseService 接口的实现类，用于具体实现标准工作监察数据的插入和查询操作
数据插入：向数据库插入一条标准工作监察记录，并自动设置创建时间、更新时间以及唯一ID。
数据查询：从数据库查询所有标准工作监察记录，并返回列表。
*/




package com.example.service.impl;//包声明
/*
导入Mapper接口,引入数据访问层（DAO/Mapper）的接口
用于在服务层调用数据库操作（如插入、查询）。
*/
import com.example.mapper.standardWorkSuperviseMapp;

/*
引入数据模型类 standardWorkSupervisePojo。
用途：作为方法参数或返回值，封装标准工作监察的相关字段（如ID、创建时间等）。
*/
import com.example.pojo.standardWorkSupervisePojo;

/*
引入Service服务层接口
用途：当前类需要实现该接口中定义的方法（如insertOne、inquiryAll）。
*/
import com.example.service.standardWorkSuperviseService;

/*导入Spring注解
*@Autowired：用于依赖注入（自动装配Mapper接口的实现）。
* @Service：标记当前类为Spring服务层的Bean，由Spring容器管理生命周期。
*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


/*
导入Java标准库类
*LocalDateTime：用于处理日期时间（设置记录的创建/更新时间）。
*List：用于返回查询结果的多条数据集合。
*UUID：用于生成唯一标识符（如数据库主键ID）。
*/
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;

/*标识这是一个Spring服务层的Bean，由Spring容器管理。*/
@Service

/*实现之前定义的接口，确保提供接口中声明的两个方法。*/
public class standardWorkSuperviseImpl implements standardWorkSuperviseService {

    /*
    自动注入standardWorkSuperviseMapp（数据访问层Mapper），用于执行数据库操作。
    最终通过 standardWorkSuperviseMapp.insertOne(pojo) 将数据存入数据库。
    */
    @Autowired
    private standardWorkSuperviseMapp standardWorkSuperviseMapp;
    //插入一行监察标准要求
    public void insertOne(standardWorkSupervisePojo pojo){
        pojo.setCreate_time(LocalDateTime.now());// 记录操作时间，设置当前时间为创建时间
        pojo.setUpdate_time(LocalDateTime.now());// 记录操作时间，设置当前时间为更新时间
        //生成一段低代码格式的id，生成UUID，确保分布式系统下ID不重复。
        UUID uuid = UUID.randomUUID();
        String uuidStr = uuid.toString().replace("-", "");// 去除UUID中的短横线
        pojo.setId(uuidStr);// 设置唯一ID
        standardWorkSuperviseMapp.insertOne(pojo);// 调用Mapper插入数据
    }
    //查询所有的监察记录
    /*
    调用 standardWorkSuperviseMapp.inquiryAll() 查询数据库中的所有监察记录。
    返回一个包含所有记录的 List<standardWorkSupervisePojo>。
    */
    public List<standardWorkSupervisePojo> inquiryAll(){
        List<standardWorkSupervisePojo> pojoList=standardWorkSuperviseMapp.inquiryAll();
        return pojoList;
    }

    //修改一行监察标准要求
    public void editOneById(standardWorkSupervisePojo pojo){
        pojo.setUpdate_time(LocalDateTime.now());
        System.out.println("第二次暑促");
        standardWorkSuperviseMapp.editOneById(pojo);
    }
}
